package com.common.app.data.repository

import com.common.app.data.api.ApiConstant
import com.common.app.data.bean.ReportBean
import com.common.app.utls.Constants
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import rxhttp.retry
import rxhttp.toAwait
import rxhttp.wrapper.param.RxHttp

/**
 * 作者：sosou
 * <p>
 * 版本：1.0
 * <p>
 * 创建日期：2022/8/22
 * <p>
 * 描述：数据上报api
 * <p>
 * 修订历史：
 */
object DataCollectionApi {

    private val APP_REPORT = ApiConstant.getBaseUrl() + "action/appReport"

    suspend fun reportEvents(events: MutableList<ReportBean>) = withContext(Dispatchers.IO) {
        RxHttp.postJson(APP_REPORT)
            .addHeader("hq_source", "1")
            .addHeader("hq_deviceId", Constants.deviceId)
            .add("data", events)
            .toAwait<String>()
            .retry(times = 1, period = 5000)
            .await()
    }
}